import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import QtQuick.Shapes 1.15

MainView {
    id: root
    width: 800
    height: 391
    property color btnColor: "#7080C0"
    property int btnHeight: 50
    property int btnWidth: 125
    signal loaderStart
    property bool normalSettingSaveOK:false

    onLoaderStart: {
        pwdSwitch.currentIndex=mytables.pwdSwitch       //哦哦 什么都可以试啊。如果是绑定的，不需要这么做吧？
    }
    Component.onCompleted:
    {
        loaderStart()                                   //QML中发射信号。
    }

    Rectangle{
        id:mainRec
        width: 800
        height: 391
        visible:true
        color: "transparent"
        Rectangle
        {
            color:"transparent"
            width: 800
            height: 350
            GridLayout{
                id: normalSettingsLayout
                rows: 1
                columns: 2
                anchors.centerIn: parent
                rowSpacing: 40

                    Button
                    {
                        Layout.row:0
                        Layout.column:0
                        Layout.preferredWidth: btnWidth
                        Layout.preferredHeight: btnHeight
                        // x: 152
                        // y: 13
                        text: qsTr("密码开关")
                        font.pixelSize: 18
                        background: Rectangle{
                            color: btnColor
                                }
                        onClicked: {
                            pwdSwitch.popup.open()
                        }
                    }
                    MyComboBox
                    {
                        id:pwdSwitch
                        Layout.row:0
                        Layout.column:1
                        Layout.preferredWidth: btnWidth
                        Layout.preferredHeight: btnHeight
                        model:[qsTr("关"),qsTr("开")]
                        currentIndex: -1        //哦哦 为什么是-1。 onLoaderStart()中，设置了currentIndex。
                    }
            }

        }


        Button
        {
            id:btnNormalParaOK
            x: 572
            y: 281
            //x: 675
            //y: 20
            width: 100
            height: 100
            background: Rectangle{
                border.width: 0
                color: "#C070B0"
                    }

            text: qsTr("确定")
            font.pixelSize: 25
            palette.buttonText: "white"
            //Connections {//哦哦 为什么这里用Connections{}？
            //    target: btnNormalParaOK  //原值：btnComml2OK      //哦哦 这个没有定义？所以，就使用parent id吗？
                onClicked: {
                    if(normalParaLoader.visible){
                        return  //哦哦 为什么会visible有效？
                    }
                    normalSettingSaveOK=false;
                    normalParaLoader.visible=true
                    var result =
                    mytables.setPwdSwitch(pwdSwitch.currentIndex);      //哦哦 将参数保存到数据库。
                    normalParaLoader.visible=false                      //执行很快，目测没有MyBuzyIndicator显示出来。
                    if(result){
                        normalSettingSaveOK=true;
                        normalParaSaveOKDialog.title=qsTr("保存成功！")
                        normalParaSaveOKDialog.open()
                        normalParaSaveOKDialog.accepted.connect(function() {
                                                normalParaSaveOKDialog.close()
                                            })
                    }
                    else
                    {
                        normalParaSaveOKDialog.title=qsTr("保存失败！")
                        normalParaSaveOKDialog.open()
                        normalParaSaveOKDialog.accepted.connect(function() {
                                                normalParaSaveOKDialog.close();
                                            })
                    }
                }
            //}
        }
       Button
        {
            id:btnReturn
            x: 688
            y: 281
            //x: 675
            //y: 20
            width: 100
            height: 100
            background: Rectangle{
                border.width: 0
                color: "#B0B0D0"
                    }

            text: qsTr("返回")
            font.pixelSize: 25
            palette.buttonText: "white"
            //Connections {
            //    target: btnReturn //哦哦 调试信息提示：qrc:/PwdSwitch.qml:138:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
                onClicked: {

                    //rectangle.selectedView = 4
                    bottomBar.selected=2
//                    myLoader.visible=false;
//                    myLoader.visible=true
                    myLoader.source="FunctionPanel.qml"
                }
            //}
        }

    }

    Timer{
       id:nsTimmer
       interval: 1000
       running: false
       repeat: false
       onTriggered: {
           pwdSwitch.currentIndex= mytables.pwdSwitch
       }
   }

    EnterNumberPanel{
          id:enterNumberPanel
          width: 800
          height: 391
          visible:false
    }
   MyBuzyIndicator{
       anchors.centerIn: parent
       id: normalParaLoader
       visible:false
       z:101
   }
   Dialog { //哦哦， Dialog{}用得挺溜。
       anchors.centerIn: parent
       id: normalParaSaveOKDialog
       //title: "提示"
       standardButtons: Dialog.Ok
       title:qsTr("保存成功！")
       modal:true
       closePolicy: "CloseOnEscape"
       onAccepted: {
           normalParaSaveOKDialog.close()
           if(normalSettingSaveOK){
               //rectangle.selectedView = 0;
               bottomBar.selected = 0;
               //myLoader.setsource = "StatusView.qml"
               //myLoader.visible=false;
               //statusView.visible=true;
//               myLoader.visible=false;
//               myLoader.visible=true;
               myLoader.source="StatusView.qml"     //哦哦 重新加载StatusView.qml。但还修改了bottomBar.selected，感觉有些不对：繁琐了吧。
           }

       }
       z:100
       //onRejected: console.log("Cancel clicked")
   }
}


